from django.db import models
from django.contrib.auth.models import User

# Create your models here.
        
class Pessoa(User):
        nome = models.CharField(max_length = 100)
        sobrenome = models.CharField(max_length = 100)
        telefone = models.IntegerField()        
        #Esse atributo podes ser suplantando pelo Active da classe User
        #deletado = models.BooleanField()        
        #Esse atributo foi suplantado pelas permissoes da classe User
        #acesso = models.CharField(max_length = 100)        
        mesa = models.IntegerField()
        #Esses atributos foram suplantados pelos atributos ja implementados na classe User
        #login = models.CharField(max_length = 100)
        #senha = models.CharField(max_length = 100)
        #email = models.EmailField()
        numero_de_cpf = models.IntegerField()
        endereco_rua = models.CharField(max_length = 100)
        endereco_numero = models.IntegerField()
        endereco_complemento = models.CharField(max_length = 100)
        endereco_cep = models.IntegerField()
        endereco_bairro = models.CharField(max_length = 100)
        endereco_cidade = models.CharField(max_length = 100)
        endereco_estado = models.CharField(max_length = 100)
        
        def verificar_cpf(self):
            pass
                    
class Cliente(Pessoa):
    pass

class Usuario(Pessoa):
    pass

class Produto(models.Model):
    nome = models.CharField(max_length = 100)
    descricao = models.TextField()
    preco = models.FloatField()
    informacao_nutricional = models.IntegerField()
    unidades_disponiveis = models.IntegerField()
    tempo_preparo = models.IntegerField()
    
class Prato(Produto):
    #tempo_preparo = models.IntegerField()
    pass
    
class Bebida(Produto):
    #tipo = models.CharField(max_length = 50)
    pass
    
class Comanda(models.Model):
    cliente = models.ForeignKey(User)
    ativa = models.BooleanField()
    quitado = models.BooleanField()
    lista_de_pedidos = []
            
    def adicionar_pedido(self, obj_pedido):
        #obj_pedido.comanda = self
        self.lista_de_pedidos.append(obj_pedido)
    
    def remover_pedido(self):
        pass
    
    def emitir_parcial(self):
        self.total = 0
        for p in self.lista_de_pedidos:
            self.total = self.total + p.quantidade * p.preco        
        return self.total

class Pedido(models.Model):
    codigo_do_produto = models.IntegerField()
    hora_do_pedido = models.TimeField(auto_now_add = True)    
    nome_do_produto = models.CharField(max_length = 100)
    preco = models.FloatField()
    quantidade = models.IntegerField()
    entregue = models.BooleanField()
    limite_de_tempo = models.IntegerField(blank = True, null = True)
    minutos_em_atraso = models.IntegerField(blank = True, null = True)
    cliente = models.ForeignKey(User)
    comanda = models.ForeignKey(Comanda, blank = True, null = True)
    pago = models.BooleanField()
